home *** CD-ROM | disk | FTP | other *** search
/ Aminet 32 / Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso / Aminet / dev / lang / Python152_Src.lha / Python152_Source / Amiga_Misc / testset / as.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  1998-10-31  |  2KB  |  70 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import ARexx
  5. import socket
  6. sockets = { }
  7.  
  8. def cmd_dispatcher(host, msg, cmd, args):
  9.     
  10.     try:
  11.         if cmd == 'GETHOSTBYNAME':
  12.             msg.result = socket.gethostbyname(args['HOST'])
  13.         elif cmd == 'GETHOSTNAME':
  14.             msg.result = socket.gethostname()
  15.         elif cmd == 'GETHOSTBYADDR':
  16.             (msg.result, aliaslist, ipaddrlist) = socket.gethostbyaddr(args['IPADDR'])
  17.         elif cmd == 'GETSERVBYNAME':
  18.             if args['TCP']:
  19.                 prot = 'tcp'
  20.             
  21.             if args['UDP']:
  22.                 prot = 'udp'
  23.             
  24.             msg.result = `socket.getservbyname(args['SERVICE'], prot)`
  25.         elif cmd == 'CONNECTSOCKET':
  26.             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  27.             sock.connect(args['HOST'], args['PORT'])
  28.             sockets[sock.fileno()] = sock
  29.             msg.result = `sock.fileno()`
  30.         elif cmd == 'CLOSESOCKET':
  31.             fd = args['SOCKET']
  32.             sockets[fd].close()
  33.             del sockets[fd]
  34.         elif cmd == 'READSOCKET':
  35.             msg.result = sockets[args['SOCKET']].recv(args['LEN'])
  36.             if not (msg.result):
  37.                 msg.rc = ARexx.RC_WARN
  38.             
  39.         elif cmd == 'WRITESOCKET':
  40.             msg.result = `sockets[args['SOCKET']].send(args['DATA'])`
  41.         elif cmd == 'WRITESOCKETCR':
  42.             msg.result = `sockets[args['SOCKET']].send(args['DATA'] + '\n')`
  43.     except socket.error:
  44.         string = None
  45.         msg.rc = ARexx.RC_ERROR
  46.         if type(string) == type(''):
  47.             msg.rc2 = string
  48.         else:
  49.             msg.rc2 = string[1]
  50.     except:
  51.         type(string) == type('')
  52.  
  53.     return 1
  54.  
  55. cmds = [
  56.     ('GETHOSTBYNAME', 'HOST/A', None, cmd_dispatcher),
  57.     ('GETHOSTNAME', '', None, cmd_dispatcher),
  58.     ('GETHOSTBYADDR', 'IPADDR/A', None, cmd_dispatcher),
  59.     ('GETSERVBYNAME', 'SERVICE/A,TCP/S,UDP/S', {
  60.         'TCP': -1,
  61.         'UDP': 0 }, cmd_dispatcher),
  62.     ('CONNECTSOCKET', 'HOST/A,PORT/N/A', None, cmd_dispatcher),
  63.     ('CLOSESOCKET', 'SOCKET/A/N', None, cmd_dispatcher),
  64.     ('READSOCKET', 'SOCKET/A/N,LEN/A/N', None, cmd_dispatcher),
  65.     ('WRITESOCKET', 'SOCKET/A/N,DATA/A/F', None, cmd_dispatcher),
  66.     ('WRITESOCKETCR', 'SOCKET/A/N,DATA/A/F', None, cmd_dispatcher)]
  67. h = ARexx.host('PY_SOCK', cmds)
  68. print 'Python ARexx host. Host is', h.name
  69. h.run()
  70.